Thema: Continuous ‚Everything‘

Quality-Gates für Continuous Testing

Continuous Software Engineering fokussiert auf einen hohen Grad an Automatisierung bei der Softwareentwicklung, um die aufeinander bauenden Entwicklungstätigkeiten schneller, wiederholbar und reproduzierbar zu gestalten. Dabei hilft Continuous Integration, bei Codeänderungen durch automatisiertes Bauen und Testen neue Softwarestände zu erstellen. Continuous Delivery und Continuous Deployment sorgen dafür, dass Softwarestände ihren Weg auf die Zielumgebungen mittels automatisierter Verfahren finden. Ausgereifte Werkzeugketten aus der OpenSource-Community, aber auch von kommerziellen Anbietern für Entwicklungspipelines, Artefakt-Repositories und Container-Technologien haben zum Durchbruch des „Continuous Everything“ verholfen. Durch das Zusammenrücken von Entwickler- und Betriebsteams (DevOps) wurde die Bedeutung desContinuous Software Engineerings auch organisatorisch untermauert.

Nach dem Motto von Dorothy Graham "Automating chaos just gives faster chaos" gewinnt auch Continuous Testing immer mehr an Bedeutung und nimmt seinen verdienten Platz in der Automatisierungskette ein. Ohne die automatisierten Unit Tests, Codequalitätsprüfungen und Regressionstests sind schnelle Entwicklungszyklen nicht realisierbar. Diese sind „die“ Qualitätsanker bei Codeerweiterungen, Refactorings und Systemintegrationen im Rahmen der inkrementellen Softwareentwicklung. Allerdings müssen die Quality-Gates für die automatisierten Pipeline-Schritte gut aufeinander abgestimmt werden, damit eine belastbare Qualitätsaussage am Ende der Entwicklungskette möglich wird.

Bei diesem Workshop werde ich den prinzipiellen Aufbau einer Continuous Software Engineering-Infrastruktur erläutern und einen dazu geeigneten OpenSource-Stack für Continuous Testing (inkl. Jenkins, Maven, TestNG, SonarQube, Selenium WebDriver, Selenium Grid, Docker) auf Basis einer exemplarischen Webanwendung vorstellen.

Gemeinsam mit den Teilnehmern werden daraufhin Quality-Gates für funktionale und nicht-funktionale Tests und die Codequalität definiert und eingerichtet. Typische Kriterien in so einem Quality-Gate sind: Code-Abdeckung für manuellen Code, Sonar-Regel-Verletzungen mit Kritikalität, Code-Duplikate, Lade/Responsezeiten bei Lastszenarien, Fehler bei Systemtests usw. In der Ausführung der Pipelines und im Reporting kann man die Auswirkungen der Quality-Gates erkennen.

Der Workshop wird mit einer interaktiven Diskussion über die Erfahrungen der Teilnehmer abgeschlossen.

Dr. Baris Güldali

Dr. Baris Güldali ist Managing Consultant bei S&N CQM GmbH. Er ist ein fachlich vernetzter Methodenexperte für klassische, agile und individuelle Softwareentwicklungsprozesse mit Schwerpunkt „kontinuierliches Qualitätsmanagement“. Neben seinem beruflichen Engagement ist er Mitglied im Leitungsgremium der Fachgruppe Test, Analyse und Verifikation von Software (TAV) in der Gesellschaft für Informatik e.V. (GI e.V.). Er hält regelmäßig Vorträge auf renommierten Konferenzen und ist Autor von zahlreichen wissenschaftlichen und praxisorientierten Publikationen.